Volume-based S/R Levels
█ OVERVIEW
After my last indicator "Order Block Finder" was unexpectedly popular with the TradingView community, I decided to publish another experimental indicator which again tries to identify "areas of interest"
Idea:
Often candles with long wicks represent strong buying & selling pressure, especially when they are combined with extraordinary volume. Especially interesting to me are the lower wicks on red candles and the upper wicks of green candles. These wicks can potentially indicate "areas of interest" by the bigger players in the market and price may interact with these levels again in the future.
This indicator tries to identify these "high volume / long wick" candles and paints a line of either Support or Resistance from the wick into the future.
█ CALCULATION LOGIC
Extraordinary Volume is identified by first calculating thresholds based on a volume Moving Average and Standard Deviations. Two Standard Deviation Values are entered to identify HIGH and EXTREME threshold levels. The current volume is classified by comparing the volume against these thresholds.
The following inputs can be made:
- Volume MA Length
- Standard Deviation Length
- Threshold for HIGH Volume (Number of StdDev)
- Threshold for EXTREME Volume (Number of StdDev)
Another entry parameter can be used to specify the Minimum Wick Length (in % of the candle body value) which identifies a "relevant" candle. If this value is set to 0, then there is no limit and all high volume candles are considered.
The identified Support/Resistance levels are shown as lines on the chart. The parameter "Length of lines (hours)" can be used to set the length of the lines (always in hours). Depending on the timeframe, this needs to be adjusted.
(I know that this can be solved more elegantly in pine, but it was just not important to me. As always everyone is free to copy the code and make improvements. Just give me a mention when you do.)
█ DISPLAY OPTIONS
Different display options are available in the settings:
- Display Support/Resistance: Select if you want to see only Support or Resistance lines - or both
- Display High/Extreme Volume: Select if you only want to see the Extreme Value Candles or the High Value Candles or both
- Display WICK / WICK Range: Select if you only want one line at the extreme value (High/Low) of the wick - or if you want to see a range (three lines - one at the top, one at the bottom and one in the middle of the wick)
- Show Signal Triangles?: This gives the option to show little triangles on all the identified candles
█ DISCLAIMER
This is an experimental indicator and I do not know if my theory works in real life. So treat this not as financial advise, but purely for entertainment and educational purposes.
As mentioned above, I publish this code open so that everyone can re-use it or hopefully even improve it.
Let me know if you have any ideas for improvement and if it is within my coding capabilities (which to be honest are quite limited), I will try to accomodate it.
Have fun.
Cerca negli script per "support resistance"
FVG Premium [no1x]█ OVERVIEW
This indicator provides a comprehensive toolkit for identifying, visualizing, and tracking Fair Value Gaps (FVGs) across three distinct timeframes (current chart, a user-defined Medium Timeframe - MTF, and a user-defined High Timeframe - HTF). It is designed to offer traders enhanced insight into FVG dynamics through detailed state monitoring (formation, partial fill, full mitigation, midline touch), extensive visual customization for FVG representation, and a rich alert system for timely notifications on FVG-related events.
█ CONCEPTS
This indicator is built upon the core concept of Fair Value Gaps (FVGs) and their significance in price action analysis, offering a multi-layered approach to their detection and interpretation across different timeframes.
Fair Value Gaps (FVGs)
A Fair Value Gap (FVG), also known as an imbalance, represents a range in price delivery where one side of the market (buying or selling) was more aggressive, leaving an inefficiency or an "imbalance" in the price action. This concept is prominently featured within Smart Money Concepts (SMC) and Inner Circle Trader (ICT) methodologies, where such gaps are often interpreted as footprints left by "smart money" due to rapid, forceful price movements. These methodologies suggest that price may later revisit these FVG zones to rebalance a prior inefficiency or to seek liquidity before continuing its path. These gaps are typically identified by a three-bar pattern:
Bullish FVG : This is a three-candle formation where the second candle shows a strong upward move. The FVG is the space created between the high of the first candle (bottom of FVG) and the low of the third candle (top of FVG). This indicates a strong upward impulsive move.
Bearish FVG : This is a three-candle formation where the second candle shows a strong downward move. The FVG is the space created between the low of the first candle (top of FVG) and the high of the third candle (bottom of FVG). This indicates a strong downward impulsive move.
FVGs are often watched by traders as potential areas where price might return to "rebalance" or find support/resistance.
Multi-Timeframe (MTF) Analysis
The indicator extends FVG detection beyond the current chart's timeframe (Low Timeframe - LTF) to two higher user-defined timeframes: Medium Timeframe (MTF) and High Timeframe (HTF). This allows traders to:
Identify FVGs that might be significant on a broader market structure.
Observe how FVGs from different timeframes align or interact.
Gain a more comprehensive perspective on potential support and resistance zones.
FVG State and Lifecycle Management
The indicator actively tracks the lifecycle of each detected FVG:
Formation : The initial identification of an FVG.
Partial Fill (Entry) : When price enters but does not completely pass through the FVG. The indicator updates the "current" top/bottom of the FVG to reflect the filled portion.
Midline (Equilibrium) Touch : When price touches the 50% level of the FVG.
Full Mitigation : When price completely trades through the FVG, effectively "filling" or "rebalancing" the gap. The indicator records the mitigation time.
This state tracking is crucial for understanding how price interacts with these zones.
FVG Classification (Large FVG)
FVGs can be optionally classified as "Large FVGs" (LV) if their size (top to bottom range) exceeds a user-defined multiple of the Average True Range (ATR) for that FVG's timeframe. This helps distinguish FVGs that are significantly larger relative to recent volatility.
Visual Customization and Information Delivery
A key concept is providing extensive control over how FVGs are displayed. This control is achieved through a centralized set of visual parameters within the indicator, allowing users to configure numerous aspects (colors, line styles, visibility of boxes, midlines, mitigation lines, labels, etc.) for each timeframe. Additionally, an on-chart information panel summarizes the nearest unmitigated bullish and bearish FVG levels for each active timeframe, providing a quick glance at key price points.
█ FEATURES
This indicator offers a rich set of features designed to provide a highly customizable and comprehensive Fair Value Gap (FVG) analysis experience. Users can tailor the FVG detection, visual representation, and alerting mechanisms across three distinct timeframes: the current chart (Low Timeframe - LTF), a user-defined Medium Timeframe (MTF), and a user-defined High Timeframe (HTF).
Multi-Timeframe FVG Detection and Display
The core strength of this indicator lies in its ability to identify and display FVGs from not only the current chart's timeframe (LTF) but also from two higher, user-selectable timeframes (MTF and HTF).
Timeframe Selection: Users can specify the exact MTF (e.g., "60", "240") and HTF (e.g., "D", "W") through dedicated inputs in the "MTF (Medium Timeframe)" and "HTF (High Timeframe)" settings groups. The visibility of FVGs from these higher timeframes can be toggled independently using the "Show MTF FVGs" and "Show HTF FVGs" checkboxes.
Consistent Detection Logic: The FVG detection logic, based on the classic three-bar imbalance pattern detailed in the 'Concepts' section, is applied consistently across all selected timeframes (LTF, MTF, HTF)
Timeframe-Specific Visuals: Each timeframe's FVGs (LTF, MTF, HTF) can be customized with unique colors for bullish/bearish states and their mitigated counterparts. This allows for easy visual differentiation of FVGs originating from different market perspectives.
Comprehensive FVG Visualization Options
The indicator provides extensive control over how FVGs are visually represented on the chart for each timeframe (LTF, MTF, HTF).
FVG Boxes:
Visibility: Main FVG boxes can be shown or hidden per timeframe using the "Show FVG Boxes" (for LTF), "Show Boxes" (for MTF/HTF) inputs.
Color Customization: Colors for bullish, bearish, active, and mitigated FVG boxes (including Large FVGs, if classified) are fully customizable for each timeframe.
Box Extension & Length: FVG boxes can either be extended to the right indefinitely ("Extend Boxes Right") or set to a fixed length in bars ("Short Box Length" or "Box Length" equivalent inputs).
Box Labels: Optional labels can display the FVG's timeframe and fill percentage on the box. These labels are configurable for all timeframes (LTF, MTF, and HTF). Please note: If FVGs are positioned very close to each other on the chart, their respective labels may overlap. This can potentially lead to visual clutter, and it is a known behavior in the current version of the indicator.
Box Borders: Visibility, width, style (solid, dashed, dotted), and color of FVG box borders are customizable per timeframe.
Midlines (Equilibrium/EQ):
Visibility: The 50% level (midline or EQ) of FVGs can be shown or hidden for each timeframe.
Style Customization: Width, style, and color of the midline are customizable per timeframe. The indicator tracks if this midline has been touched by price.
Mitigation Lines:
Visibility: Mitigation lines (representing the FVG's opening level that needs to be breached for full mitigation) can be shown or hidden for each timeframe. If shown, these lines are always extended to the right.
Style Customization: Width, style, and color of the mitigation line are customizable per timeframe.
Mitigation Line Labels: Optional price labels can be displayed on mitigation lines, with a customizable horizontal bar offset for positioning. For optimal label placement, the following horizontal bar offsets are recommended: 4 for LTF, 8 for MTF, and 12 for HTF.
Persistence After Mitigation: Users can choose to keep mitigation lines visible even after an FVG is fully mitigated, with a distinct color for such lines. Importantly, this option is only effective if the general setting 'Hide Fully Mitigated FVGs' is disabled, as otherwise, the entire FVG and its lines will be removed upon mitigation.
FVG State Management and Behavior
The indicator tracks and visually responds to changes in FVG states.
Hide Fully Mitigated FVGs: This option, typically found in the indicator's general settings, allows users to automatically remove all visual elements of an FVG from the chart once price has fully mitigated it. This helps maintain chart clarity by focusing on active FVGs.
Partial Fill Visualization: When price enters an FVG, the indicator offers a dynamic visual representation: the portion of the FVG that has been filled is shown as a "mitigated box" (typically with a distinct color), while the original FVG box shrinks to clearly highlight the remaining, unfilled portion. This two-part display provides an immediate visual cue about how much of the FVG's imbalance has been addressed and what potential remains within the gap.
Visual Filtering by ATR Proximity: To help users focus on the most relevant price action, FVGs can be dynamically hidden if they are located further from the current price than a user-defined multiple of the Average True Range (ATR). This behavior is controlled by the "Filter Band Width (ATR Multiple)" input; setting this to zero disables the filter entirely, ensuring all detected FVGs remain visible regardless of their proximity to price.
Alternative Usage Example: Mitigation Lines as Key Support/Resistance Levels
For traders preferring a minimalist chart focused on key Fair Value Gap (FVG) levels, the indicator's visualization settings can be customized to display only FVG mitigation lines. This approach leverages these lines as potential support and resistance zones, reflecting areas where price might revisit to address imbalances.
To configure this view:
Disable FVG Boxes: Turn off "Show FVG Boxes" (for LTF) or "Show Boxes" (for MTF/HTF) for the desired timeframes.
Hide Midlines: Disable the visibility of the 50% FVG Midlines (Equilibrium/EQ).
Ensure Mitigation Lines are Visible: Keep "Mitigation Lines" enabled.
Retain All Mitigation Lines:
Disable the "Hide Fully Mitigated FVGs" option in the general settings.
Enable the feature to "keep mitigation lines visible even after an FVG is fully mitigated". This ensures lines from all FVGs (active or fully mitigated) remain on the chart, which is only effective if "Hide Fully Mitigated FVGs" is disabled.
This setup offers:
A Decluttered Chart: Focuses solely on the FVG opening levels.
Precise S/R Zones: Treats mitigation lines as specific points for potential price reactions.
Historical Level Analysis: Includes lines from past, fully mitigated FVGs for a comprehensive view of significant price levels.
For enhanced usability with this focused view, consider these optional additions:
The on-chart Information Panel can be activated to display a quick summary of the nearest unmitigated FVG levels.
Mitigation Line Labels can also be activated for clear price level identification. A customizable horizontal bar offset is available for positioning these labels; for example, offsets of 4 for LTF, 8 for MTF, and 12 for HTF can be effective.
FVG Classification (Large FVG)
This feature allows for distinguishing FVGs based on their size relative to market volatility.
Enable Classification: Users can enable "Classify FVG (Large FVG)" to identify FVGs that are significantly larger than average.
ATR-Based Threshold: An FVG is classified as "Large" if its height (price range) is greater than or equal to the Average True Range (ATR) of its timeframe multiplied by a user-defined "Large FVG Threshold (ATR Multiple)". The ATR period for this calculation is also configurable.
Dedicated Colors: Large FVGs (both bullish/bearish and active/mitigated) can be assigned unique colors, making them easily distinguishable on the chart.
Panel Icon: Large FVGs are marked with a special icon in the Info Panel.
Information Panel
An on-chart panel provides a quick summary of the nearest unmitigated FVG levels.
Visibility and Position: The panel can be shown/hidden and positioned in any of the nine standard locations on the chart (e.g., Top Right, Middle Center).
Content: It displays the price levels of the nearest unmitigated bullish and bearish FVGs for LTF, MTF (if active), and HTF (if active). It also indicates if these nearest FVGs are Large FVGs (if classification is enabled) using a selectable icon.
Styling: Text size, border color, header background/text colors, default text color, and "N/A" cell background color are customizable.
Highlighting: Background and text colors for the cells displaying the overall nearest bullish and bearish FVG levels (across all active timeframes) can be customized to draw attention to the most proximate FVG.
Comprehensive Alert System
The indicator offers a granular alert system for various FVG-related events, configurable for each timeframe (LTF, MTF, HTF) independently. Users can enable alerts for:
New FVG Formation: Separate alerts for new bullish and new bearish FVG formations.
FVG Entry/Partial Fill: Separate alerts for price entering a bullish FVG or a bearish FVG.
FVG Full Mitigation: Separate alerts for full mitigation of bullish and bearish FVGs.
FVG Midline (EQ) Touch: Separate alerts for price touching the midline of a bullish or bearish FVG.
Alert messages are detailed, providing information such as the timeframe, FVG type (bull/bear, Large FVG), relevant price levels, and timestamps.
█ NOTES
This section provides additional information regarding the indicator's usage, performance considerations, and potential interactions with the TradingView platform. Understanding these points can help users optimize their experience and troubleshoot effectively.
Performance and Resource Management
Maximum FVGs to Track : The "Max FVGs to Track" input (defaulting to 25) limits the number of FVG objects processed for each category (e.g., LTF Bullish, MTF Bearish). Increasing this value significantly can impact performance due to more objects being iterated over and potentially drawn, especially when multiple timeframes are active.
Drawing Object Limits : To manage performance, this script sets its own internal limits on the number of drawing objects it displays. While it allows for up to approximately 500 lines (max_lines_count=500) and 500 labels (max_labels_count=500), the number of FVG boxes is deliberately restricted to a maximum of 150 (max_boxes_count=150). This specific limit for boxes is a key performance consideration: displaying too many boxes can significantly slow down the indicator, and a very high number is often not essential for analysis. Enabling all visual elements for many FVGs across all three timeframes can cause the indicator to reach these internal limits, especially the stricter box limit
Optimization Strategies : To help you manage performance, reduce visual clutter, and avoid exceeding drawing limits when using this indicator, I recommend the following strategies:
Maintain or Lower FVG Tracking Count: The "Max FVGs to Track" input defaults to 25. I find this value generally sufficient for effective analysis and balanced performance. You can keep this default or consider reducing it further if you experience performance issues or prefer a less dense FVG display.
Utilize Proximity Filtering: I suggest activating the "Filter Band Width (ATR Multiple)" option (found under "General Settings") to display only those FVGs closer to the current price. From my experience, a value of 5 for the ATR multiple often provides a good starting point for balanced performance, but you should feel free to adjust this based on market volatility and your specific trading needs.
Hide Fully Mitigated FVGs: I strongly recommend enabling the "Hide Fully Mitigated FVGs" option. This setting automatically removes all visual elements of an FVG from the chart once it has been fully mitigated by price. Doing so significantly reduces the number of active drawing objects, lessens computational load, and helps maintain chart clarity by focusing only on active, relevant FVGs.
Disable FVG Display for Unused Timeframes: If you are not actively monitoring certain higher timeframes (MTF or HTF) for FVG analysis, I advise disabling their display by unchecking "Show MTF FVGs" or "Show HTF FVGs" respectively. This can provide a significant performance boost.
Simplify Visual Elements: For active FVGs, consider hiding less critical visual elements if they are not essential for your specific analysis. This could include box labels, borders, or even entire FVG boxes if, for example, only the mitigation lines are of interest for a particular timeframe.
Settings Changes and Platform Limits : This indicator is comprehensive and involves numerous calculations and drawings. When multiple settings are changed rapidly in quick succession, it is possible, on occasion, for TradingView to issue a "Runtime error: modify_study_limit_exceeding" or similar. This can cause the indicator to temporarily stop updating or display errors.
Recommended Approach : When adjusting settings, it is advisable to wait a brief moment (a few seconds) after each significant change. This allows the indicator to reprocess and update on the chart before another change is made
Error Recovery : Should such a runtime error occur, making a minor, different adjustment in the settings (e.g., toggling a checkbox off and then on again) and waiting briefly will typically allow the indicator to recover and resume correct operation. This behavior is related to platform limitations when handling complex scripts with many inputs and drawing objects.
Multi-Timeframe (MTF/HTF) Data and Behavior
HTF FVG Confirmation is Essential: : For an FVG from a higher timeframe (MTF or HTF) to be identified and displayed on your current chart (LTF), the three-bar pattern forming the FVG on that higher timeframe must consist of fully closed bars. The indicator does not draw speculative FVGs based on incomplete/forming bars from higher timeframes.
Data Retrieval and LTF Processing: The indicator may use techniques like lookahead = barmerge.lookahead_on for timely data retrieval from higher timeframes. However, the actual detection of an FVG occurs after all its constituent bars on the HTF have closed.
Appearance Timing on LTF (1 LTF Candle Delay): As a natural consequence of this, an FVG that is confirmed on an HTF (i.e., its third bar closes) will typically become visible on your LTF chart one LTF bar after its confirmation on the HTF.
Example: Assume an FVG forms on a 30-minute chart at 15:30 (i.e., with the close of the 30-minute bar that covers the 15:00-15:30 period). If you are monitoring this FVG on a 15-minute chart, the indicator will detect this newly formed 30-minute FVG while processing the data for the 15-minute bar that starts at 15:30 and closes at 15:45. Therefore, the 30-minute FVG will become visible on your 15-minute chart at the earliest by 15:45 (i.e., with the close of that relevant 15-minute LTF candle). This means the HTF FVG is reflected on the LTF chart with a delay equivalent to one LTF candle.
FVG Detection and Display Logic
Fair Value Gaps (FVGs) on the current chart timeframe (LTF) are detected based on barstate.isconfirmed. This means the three-bar pattern must be complete with closed bars before an FVG is identified. This confirmation method prevents FVGs from being prematurely identified on the forming bar.
Alerts
Alert Setup : To receive alerts from this indicator, you must first ensure you have enabled the specific alert conditions you are interested in within the indicator's own settings (see 'Comprehensive Alert System' under the 'FEATURES' section). Once configured, open TradingView's 'Create Alert' dialog. In the 'Condition' tab, select this indicator's name, and crucially, choose the 'Any alert() function call' option from the dropdown list. This setup allows the indicator to trigger alerts based on the precise event conditions you have activated in its settings
Alert Frequency : Alerts are designed to trigger once per bar close (alert.freq_once_per_bar_close) for the specific event.
User Interface (UI) Tips
Settings Group Icons: In the indicator settings menu, timeframe-specific groups are marked with star icons for easier navigation: 🌟 for LTF (Current Chart Timeframe), 🌟🌟 for MTF (Medium Timeframe), and 🌟🌟🌟 for HTF (High Timeframe).
Dependent Inputs: Some input settings are dependent on others being enabled. These dependencies are visually indicated in the settings menu using symbols like "↳" (dependent setting on the next line), "⟷" (mutually exclusive inline options), or "➜" (directly dependent inline option).
Settings Layout Overview: The indicator settings are organized into logical groups for ease of use. Key global display controls – such as toggles for MTF FVGs, HTF FVGs (along with their respective timeframe selectors), and the Information Panel – are conveniently located at the very top within the '⚙️ General Settings' group. This placement allows for quick access to frequently adjusted settings. Other sections provide detailed customization options for each timeframe (LTF, MTF, HTF), specific FVG components, and alert configurations.
█ FOR Pine Script® CODERS
This section provides a high-level overview of the FVG Premium indicator's internal architecture, data flow, and the interaction between its various library components. It is intended for Pine Script™ programmers who wish to understand the indicator's design, potentially extend its functionality, or learn from its structure.
System Architecture and Modular Design
The indicator is architected moduarly, leveraging several custom libraries to separate concerns and enhance code organization and reusability. Each library has a distinct responsibility:
FvgTypes: Serves as the foundational data definition layer. It defines core User-Defined Types (UDTs) like fvgObject (for storing all attributes of an FVG) and drawSettings (for visual configurations), along with enumerations like tfType.
CommonUtils: Provides utility functions for common tasks like mapping user string inputs (e.g., "Dashed" for line style) to their corresponding Pine Script™ constants (e.g., line.style_dashed) and formatting timeframe strings for display.
FvgCalculations: Contains the core logic for FVG detection (both LTF and MTF/HTF via requestMultiTFBarData), FVG classification (Large FVGs based on ATR), and checking FVG interactions with price (mitigation, partial fill).
FvgObject: Implements an object-oriented approach by attaching methods to the fvgObject UDT. These methods manage the entire visual lifecycle of an FVG on the chart, including drawing, updating based on state changes (e.g., mitigation), and deleting drawing objects. It's responsible for applying the visual configurations defined in drawSettings.
FvgPanel: Manages the creation and dynamic updates of the on-chart information panel, which displays key FVG levels.
The main indicator script acts as the orchestrator, initializing these libraries, managing user inputs, processing data flow between libraries, and handling the main event loop (bar updates) for FVG state management and alerts.
Core Data Flow and FVG Lifecycle Management
The general data flow and FVG lifecycle can be summarized as follows:
Input Processing: User inputs from the "Settings" dialog are read by the main indicator script. Visual style inputs (colors, line styles, etc.) are consolidated into a types.drawSettings object (defined in FvgTypes). Other inputs (timeframes, filter settings, alert toggles) control the behavior of different modules. CommonUtils assists in mapping some string inputs to Pine constants.
FVG Detection:
For the current chart timeframe (LTF), FvgCalculations.detectFvg() identifies potential FVGs based on bar patterns.
For MTF/HTF, the main indicator script calls FvgCalculations.requestMultiTFBarData() to fetch necessary bar data from higher timeframes, then FvgCalculations.detectMultiTFFvg() identifies FVGs.
Newly detected FVGs are instantiated as types.fvgObject and stored in arrays within the main script. These objects also undergo classification (e.g., Large FVG) by FvgCalculations.
State Update & Interaction: On each bar, the main indicator script iterates through active FVG objects to manage their state based on price interaction:
Initially, the main script calls FvgCalculations.fvgInteractionCheck() to efficiently determine if the current bar's price might be interacting with a given FVG.
If a potential interaction is flagged, the main script then invokes methods directly on the fvgObject instance (e.g., updateMitigation(), updatePartialFill(), checkMidlineTouch(), which are part of FvgObject).
These fvgObject methods are responsible for the detailed condition checking and the actual modification of the FVG's state. For instance, the updateMitigation() and updatePartialFill() methods internally utilize specific helper functions from FvgCalculations (like checkMitigation() and checkPartialMitigation()) to confirm the precise nature of the interaction before updating the fvgObject’s state fields (such as isMitigated, currentTop, currentBottom, or isMidlineTouched).
Visual Rendering:
The FvgObject.updateDrawings() method is called for each fvgObject. This method is central to drawing management; it creates, updates, or deletes chart drawings (boxes, lines, labels) based on the FVG's current state, its prev_* (previous bar state) fields for optimization, and the visual settings passed via the drawSettings object.
Information Panel Update: The main indicator script determines the nearest FVG levels, populates a panelData object (defined in FvgPanelLib), and calls FvgPanel.updatePanel() to refresh the on-chart display.
Alert Generation: Based on the updated FVG states and user-enabled alert settings, the main indicator script constructs and triggers alerts using Pine Script's alert() function."
Key Design Considerations
UDT-Centric Design: The fvgObject UDT is pivotal, acting as a stateful container for all information related to a single FVG. Most operations revolve around creating, updating, or querying these objects.
State Management: To optimize drawing updates and manage FVG lifecycles, fvgObject instances store their previous bar's state (e.g., prevIsVisible, prevCurrentTop). The FvgObject.updateDrawings() method uses this to determine if a redraw is necessary, minimizing redundant drawing calls.
Settings Object: A drawSettings object is populated once (or when inputs change) and passed to drawing functions. This avoids repeatedly reading numerous input() values on every bar or within loops, improving performance.
Dynamic Arrays for FVG Storage: Arrays are used to store collections of fvgObject instances, allowing for dynamic management (adding new FVGs, iterating for updates).
EMA Validation4 EMA with Support/Resistance Validation (EMA-V)
This indicator displays four Exponential Moving Averages (EMAs) with customizable periods (default: 21, 50, 100, 200) and visually validates their roles as support or resistance.
Each EMA changes color based on its behavior: green for respected support , red for respected resistance, or default colors when unvalidated.
Ideal for traders seeking to identify reliable support and resistance levels across multiple timeframes.
Volume-Weighted Pivot BandsThe Volume-Weighted Pivot Bands are meant to be a dynamic, rolling pivot system designed to provide traders with responsive support and resistance levels that adapt to both price volatility and volume participation. Unlike traditional daily pivot levels, this tool recalculates levels bar-by-bar using a rolling window of volume-weighted averages, making it highly relevant for intraday traders, scalpers, swing traders, and algorithmic systems alike.
-- What This Indicator Does --
This tool calculates a rolling VWAP-based pivot level, and surrounds that central pivot with up to five upper bands (R1–R5) and five lower bands (S1–S5). These act as dynamic zones of potential resistance (R) and support (S), adapting in real time to price and volume changes.
Rather than relying on static session or daily data, this indicator provides continually evolving levels, offering more relevant levels during sideways action, trending periods, and breakout conditions.
-- How the Bands Are Calculated --
Pivot (VWAP Pivot):
The core of this system is a rolling Volume-Weighted Average Price, calculated over a user-defined window (default 20 bars). This ensures that each bar’s price impact is weighted by its volume, giving a more accurate view of fair value during the selected lookback.
Volume-Weighted Range (VW Range):
The highest high and lowest low over the same window are used to calculate the volatility range — this acts as a spread factor.
Support & Resistance Bands (S1–S5, R1–R5):
The bands are offset above and below the pivot using multiples of the VW Range:
R1 = Pivot + (VW Range × multiplier)
R2 = R1 + (VW Range × multiplier)
R3 = R2 + (VW Range x multiplier)
...
S1 = Pivot − (VW Range × multiplier)
S2 = S1 − (VW Range × multiplier)
S3 = S2 - (VW Range x multiplier)
...
You can control the multiplier manually (default is 0.25), to widen or tighten band spacing.
Smoothing (Optional):
To prevent erratic movements, you can optionally toggle on/off a simple moving average to the pivot line (default length = 20), providing a smoother trend base for the bands.
-- How to Use It --
This indicator can be used for:
Support and resistance identification:
Price often reacts to R1/S1, and the outer bands (R4/R5 or S4/S5) act as overshoot zones or strong reversal areas.
Trend context:
If price is respecting upper bands (R2–R3), the trend is likely bullish. If price is pressing into S3 or lower, it may indicate sustained selling pressure or a breakdown.
Volatility framing:
The distance between bands adjusts based on price range over the rolling window. In tighter markets, the bands compress — in volatile moves, they expand. This makes the indicator self-adaptive.
Mean reversion trades:
A move into R4/R5 or S4/S5 without continuation can be a sign of exhaustion — potential for reversal toward the pivot.
Alerting:
Built-in alerts are available for crosses of all major bands (R1–R5, S1–S5), enabling trade automation or scalp alerts with ease.
-- Visual Features --
Fuchsia Lines: Mark all Resistance (R1–R5) levels.
Lime Lines: Mark all Support (S1–S5) levels.
Gray Circle Line: Marks the rolling pivot (VWAP-based).
-- Customizable Settings --
Rolling Length: Number of bars used to calculate VWAP and VW Range.
Multiplier: Controls how wide the bands are spaced.
Smooth Pivot: Toggle on/off to smooth the central pivot.
Pivot Smoothing Length: Controls how many bars to average when smoothing is enabled.
Offset: Visually shift all bands forward/backward in time.
-- Why Use This Over Standard Pivots? --
Traditional pivots are based on previous session data and remain fixed. That’s useful for static setups, but may become irrelevant as price action evolves. In contrast:
This system updates every bar, adjusting to current price behavior.
It includes volume — a key feature missing from most static pivots.
It shows multiple bands, giving a full view of compression, breakout potential, or trend exhaustion.
-- Who Is This For? --
This tool is ideal for:
Day traders & scalpers who need relevant intraday levels.
Swing traders looking for evolving areas of confluence.
Algorithmic/systematic traders who rely on quantifiable, volume-aware support/resistance.
Traders on all assets: works on crypto, stocks, futures, forex — any chart that has volume.
PowerHouse SwiftEdge AI v2.10 StrategyOverview
The PowerHouse SwiftEdge AI v2.10 Strategy is a sophisticated trading system designed to identify high-probability trade setups in forex, stocks, and cryptocurrencies. By combining multi-timeframe trend analysis, momentum signals, volume confirmation, and smart money concepts (Change of Character and Break of Structure ), this strategy offers traders a robust tool to capitalize on market trends while minimizing false signals. The strategy’s unique “AI” component analyzes trends across multiple timeframes to provide a clear, actionable dashboard, making it accessible for both novice and experienced traders. The strategy is fully customizable, allowing users to tailor its filters to their trading style.
What It Does
This strategy generates Buy and Sell signals based on a confluence of technical indicators and smart money concepts. It uses:
Multi-Timeframe Trend Analysis: Confirms the market’s direction by analyzing trends on the 1-hour (60M), 4-hour (240M), and daily (D) timeframes.
Momentum Filter: Ensures trades align with strong price movements to avoid choppy markets.
Volume Filter: Validates signals with above-average volume to confirm market participation.
Breakout Filter: Requires price to break key levels for added confirmation.
Smart Money Signals (CHoCH/BOS): Identifies reversals (CHoCH) and trend continuations (BOS) based on pivot points.
AI Trend Dashboard: Summarizes trend strength, confidence, and predictions across timeframes, helping traders make informed decisions without needing to analyze complex data manually.
The strategy also plots dynamic support and resistance trendlines, take-profit (TP) levels, and “Get Ready” signals to alert users of potential setups before they fully develop. Trades are executed with predefined take-profit and stop-loss levels for disciplined risk management.
How It Works
The strategy integrates multiple components to create a cohesive trading system:
Multi-Timeframe Trend Analysis:
The strategy evaluates trends on three timeframes (1H, 4H, Daily) using Exponential Moving Averages (EMA) and Volume-Weighted Average Price (VWAP). A trend is considered bullish if the price is above both the EMA and VWAP, bearish if below, or neutral otherwise.
Signals are only generated when the trend on the user-selected higher timeframe aligns with the trade direction (e.g., Buy signals require a bullish higher timeframe trend). This reduces noise and ensures trades follow the broader market context.
Momentum Filter:
Measures the percentage price change between consecutive bars and compares it to a volatility-adjusted threshold (based on the Average True Range ). This ensures trades are taken only during significant price movements, filtering out low-momentum conditions.
Volume Filter (Optional):
Checks if the current volume exceeds a long-term average and shows positive short-term volume change. This confirms strong market participation, reducing the risk of false breakouts.
Breakout Filter (Optional):
Requires the price to break above (for Buy) or below (for Sell) recent highs/lows, ensuring the signal aligns with a structural shift in the market.
Smart Money Concepts (CHoCH/BOS):
Change of Character (CHoCH): Detects potential reversals when the price crosses under a recent pivot high (for Sell) or over a recent pivot low (for Buy) with a bearish or bullish candle, respectively.
Break of Structure (BOS): Confirms trend continuations when the price breaks below a recent pivot low (for Sell) or above a recent pivot high (for Buy) with strong momentum.
These signals are plotted as horizontal lines with labels, making it easy to visualize key levels.
AI Trend Dashboard:
Combines trend direction, momentum, and volatility (ATR) across timeframes to calculate a trend score. Scores above 0.5 indicate an “Up” trend, below -0.5 indicate a “Down” trend, and otherwise “Neutral.”
Displays a table summarizing trend strength (as a percentage), AI confidence (based on trend alignment), and Cumulative Volume Delta (CVD) for market context.
A second table (optional) shows trend predictions for 1H, 4H, and Daily timeframes, helping traders anticipate future market direction.
Dynamic Trendlines:
Plots support and resistance lines based on recent swing lows and highs within user-defined periods (shortTrendPeriod, longTrendPeriod). These lines adapt to market conditions and are colored based on trend strength.
Why This Combination?
The PowerHouse SwiftEdge AI v2.10 Strategy is original because it seamlessly integrates traditional technical analysis (EMA, VWAP, ATR, volume) with smart money concepts (CHoCH, BOS) and a proprietary AI-driven trend analysis. Unlike standalone indicators, this strategy:
Reduces False Signals: By requiring confluence across trend, momentum, volume, and breakout filters, it minimizes trades in choppy or low-conviction markets.
Adapts to Market Context: The ATR-based momentum threshold adjusts dynamically to volatility, ensuring signals remain relevant in both trending and ranging markets.
Simplifies Decision-Making: The AI dashboard distills complex multi-timeframe data into a user-friendly table, eliminating the need for manual analysis.
Leverages Smart Money: CHoCH and BOS signals capture institutional price action patterns, giving traders an edge in identifying reversals and continuations.
The combination of these components creates a balanced system that aligns short-term trade entries with longer-term market trends, offering a unique blend of precision, adaptability, and clarity.
How to Use
Add to Chart:
Apply the strategy to your TradingView chart on a liquid symbol (e.g., EURUSD, BTCUSD, AAPL) with a timeframe of 60 minutes or lower (e.g., 15M, 60M).
Configure Inputs:
Pivot Length: Adjust the number of bars (default: 5) to detect pivot highs/lows for CHoCH/BOS signals. Higher values reduce noise but may delay signals.
Momentum Threshold: Set the base percentage (default: 0.01%) for momentum confirmation. Increase for stricter signals.
Take Profit/Stop Loss: Define TP and SL in points (default: 10 each) for risk management.
Higher/Lower Timeframe: Choose timeframes (60M, 240M, D) for trend filtering. Ensure the chart timeframe is lower than or equal to the higher timeframe.
Filters: Enable/disable momentum, volume, or breakout filters to suit your trading style.
Trend Periods: Set shortTrendPeriod (default: 30) and longTrendPeriod (default: 100) for trendline plotting. Keep below 2000 to avoid buffer errors.
AI Dashboard: Toggle Enable AI Market Analysis to show/hide the prediction table and adjust its position.
Interpret Signals:
Buy/Sell Labels: Green "Buy" or red "Sell" labels indicate trade entries with predefined TP/SL levels plotted.
Get Ready Signals: Yellow "Get Ready BUY" or orange "Get Ready SELL" labels warn of potential setups.
CHoCH/BOS Lines: Aqua (CHoCH Sell), lime (CHoCH Buy), fuchsia (BOS Sell), or teal (BOS Buy) lines mark key levels.
Trendlines: Green/lime (support) or fuchsia/purple (resistance) dashed lines show dynamic support/resistance.
AI Dashboard: Check the top-right table for trend strength, confidence, and CVD. The optional bottom table shows trend predictions (Up, Down, Neutral).
Backtest and Trade:
Use TradingView’s Strategy Tester to evaluate performance. Adjust TP/SL and filters based on results.
Trade manually based on signals or automate with TradingView alerts (set alerts for Buy/Sell labels).
Originality and Value
The PowerHouse SwiftEdge AI v2.10 Strategy stands out by combining multi-timeframe analysis, smart money concepts, and an AI-driven dashboard into a single, user-friendly system. Its adaptive momentum threshold, robust filtering, and clear visualizations empower traders to make confident decisions without needing advanced technical knowledge. Whether you’re a day trader or swing trader, this strategy provides a versatile, data-driven approach to navigating dynamic markets.
Important Notes:
Risk Management: Always use appropriate position sizing and risk management, as the strategy’s TP/SL levels are customizable.
Symbol Compatibility: Test on liquid symbols with sufficient historical data (at least 2000 bars) to avoid buffer errors.
Performance: Backtest thoroughly to optimize settings for your market and timeframe.
Daily LevelsOverview:
The Daily Levels indicator plots key price levels from the previous trading day, including the high, low, median (pivot), and projected extensions. These levels help traders identify potential support/resistance zones and anticipate breakout or reversal opportunities.
Key Features:
✅ Previous Day High & Low – Visualizes the prior day’s high and low as dynamic support/resistance levels.
✅ Median (Pivot) Line – Calculates the midpoint between the previous day’s high and low, acting as a key intraday reference.
✅ Projected Levels – Extends the high/low range symmetrically above and below the median, highlighting potential breakout zones.
✅ Customizable Display – Toggle visibility, adjust colors, and modify line styles (solid, dotted, dashed).
✅ Price Labels – Clear on-chart labels showing exact price values for quick reference.
✅ Built-in Alerts – Get notified when price crosses any of the key levels.
How to Use:
Trend Identification: If price holds above the median, the bias is bullish; below suggests bearish momentum.
Breakout Trading: Watch for moves beyond the projected levels for potential continuation.
Mean Reversion: Fade moves toward the previous day’s high/low if the median holds as support/resistance.
Ideal For:
Day Traders – Intraday support/resistance levels.
Swing Traders – Context for multi-day trends.
Breakout/Reversal Strategies – Clear levels for trade triggers.
Settings Recommendations:
High/Low Lines: Use semi-transparent colors (e.g., green/red) for clarity.
Projections: Helpful for anticipating extended moves (e.g., teal for upper, orange for lower).
Alerts: Enable notifications for key crosses (e.g., median or high/low breaks).
Liquidity Heatmap SwiftEdgeDescription
Liquidity Heatmap with Buy/Sell Side (Blue/Red) is a technical analysis tool designed to help traders identify potential liquidity zones in the market by combining swing high/low detection with volume analysis, visualized as a heatmap overlay on the chart. This script highlights areas where significant buying or selling pressure may exist, often acting as support or resistance levels, and provides a clear visual representation of these zones using color-coded heatmap boxes and labeled bubbles.
What It Does
The script identifies key price levels (swing highs and lows) where liquidity is likely to be concentrated, such as stop-loss clusters or pending orders. These levels are then grouped into a heatmap, with blue zones representing potential buy-side liquidity (below the current price) and red zones indicating sell-side liquidity (above the current price). Each zone is marked with a bubble showing the estimated liquidity amount, derived from volume data, to help traders gauge the strength of the level.
How It Works
The script combines three main components to create a comprehensive liquidity visualization:
Swing Highs and Lows Detection:
The script uses the ta.pivothigh and ta.pivotlow functions to identify swing highs and lows over a user-defined lookback period (Swing Length). These levels often represent areas where price has reversed, indicating potential liquidity zones where stop-losses or pending orders may be placed.
Volume Analysis:
Volume data at each swing high/low is captured and averaged over a specified period (Volume Average Length). This volume is then scaled using a multiplier (Volume Multiplier for Liquidity) to estimate the liquidity amount at each level, displayed in thousands (e.g., "10K") on the chart via labeled bubbles.
Heatmap Visualization:
The identified levels are grouped into price bins to form a heatmap. The price range is divided into a user-defined number of bins (Number of Heatmap Bins), and each bin is drawn as a colored box (blue for buy-side, red for sell-side). The transparency of the heatmap boxes can be adjusted (Heatmap Transparency) to ensure they do not obscure the price action.
Why Combine These Components?
The combination of swing highs/lows, volume analysis, and a heatmap provides a powerful way to visualize liquidity in the market. Swing highs and lows are natural points where liquidity tends to accumulate, as they often coincide with areas where traders place stop-losses or pending orders. By incorporating volume data, the script quantifies the potential strength of these levels, giving traders insight into the magnitude of liquidity present. The heatmap visualization then aggregates these levels into a clear, color-coded overlay, making it easy to see where buy-side and sell-side liquidity is concentrated without cluttering the chart.
This mashup is particularly useful because it bridges price action (swing levels), market activity (volume), and visual clarity (heatmap), offering a holistic view of potential support and resistance zones that might influence price movements.
How to Use It
Add the Indicator to Your Chart:
Apply the script to your chart by adding it from the Pine Script library. It will overlay directly on your price chart.
Interpret the Heatmap:
Blue Zones (Buy-Side Liquidity): These appear below the current price and indicate levels where buying pressure or stop-losses from short positions may be located.
Red Zones (Sell-Side Liquidity): These appear above the current price and indicate levels where selling pressure or stop-losses from long positions may be located.
The intensity of the color is controlled by the Heatmap Transparency setting—lower values make the zones more opaque, while higher values make them more transparent.
Analyze the Bubbles:
Each liquidity zone is marked with a bubble showing the estimated liquidity amount in thousands (e.g., "10K"). The size of the bubble is scaled by the Bubble Size Multiplier, with larger bubbles indicating higher liquidity.
Adjust Settings for Your Needs:
Liquidity Settings:
Swing Length: Controls the lookback period for detecting swing highs and lows. A smaller value (e.g., 10) is better for shorter timeframes like 1-minute charts, while a larger value (e.g., 50) suits higher timeframes.
Liquidity Threshold: Defines how close two levels must be to be considered the same, preventing duplicate zones.
Volume Average Length: Sets the period for averaging volume data at swing points.
Volume Multiplier for Liquidity: Scales the volume to estimate liquidity amounts shown in the bubbles.
Lookback Period (Hours): Limits how far back the script looks for liquidity zones.
Use Price Window Filter: If enabled, only shows zones within a price range defined by Liquidity Window (Points per Side).
Heatmap Settings:
Number of Heatmap Bins: Determines how many price bins the heatmap is divided into. More bins create a finer resolution but may clutter the chart.
Heatmap Bin Height (Points): Sets the vertical height of each heatmap box in price points.
Heatmap Transparency: Adjusts the transparency of the heatmap boxes (0 = fully opaque, 100 = fully transparent).
Display Settings:
Bubble Size Multiplier: Scales the size of the bubbles showing liquidity amounts.
Trading Application:
Use the heatmap to identify potential support (blue zones) and resistance (red zones) levels where price may react.
Pay attention to zones with larger bubbles, as they indicate higher liquidity and may have a stronger impact on price.
Combine with other analysis tools (e.g., trendlines, indicators) to confirm trade setups.
What Makes It Original?
This script stands out by integrating swing high/low detection with volume-based liquidity estimation and a heatmap visualization in a single tool. Unlike traditional support/resistance indicators that only plot static lines, this script dynamically aggregates liquidity zones into a heatmap, making it easier to see clusters of potential buying or selling pressure. The addition of volume-derived liquidity amounts in labeled bubbles provides a unique quantitative measure of each zone's strength, helping traders prioritize key levels. The color-coded buy/sell distinction further enhances its utility by visually separating zones based on their likely market impact.
Example Use Case
On a 1-minute chart of EUR/USD, you might set Swing Length to 10 to capture short-term pivots, Lookback Period (Hours) to 4 to focus on recent data, and Liquidity Window to 200 points (20 pips) to show only nearby zones. The heatmap will then display blue zones below the current price where buy-side liquidity may act as support, and red zones above where sell-side liquidity may act as resistance. A bubble showing "50K" at a blue zone indicates significant buy-side liquidity, suggesting a potential bounce if the price approaches that level.
[TehThomas] - ICT Inversion Fair value Gap (IFVG) The Inversion Fair Value Gap (IFVG) indicator is a powerful tool designed for traders who utilize ICT (Inner Circle Trader) strategies. It focuses on identifying and displaying Inversion Fair Value Gaps, which are critical zones that emerge when traditional Fair Value Gaps (FVGs) are invalidated by price action. These gaps represent key areas where price often reacts, making them essential for identifying potential reversals, trend continuations, and liquidity zones.
What Are Inversion Fair Value Gaps?
Inversion Fair Value Gaps occur when price revisits a traditional FVG and breaks through it, effectively flipping its role in the market. For example:
A bullish FVG that is invalidated becomes a bearish zone, often acting as resistance.
A bearish FVG that is invalidated transforms into a bullish zone, serving as support.
These gaps are significant because they often align with institutional trading activity. They highlight areas where large orders have been executed or where liquidity has been targeted. Understanding these gaps provides traders with a deeper insight into market structure and helps them anticipate future price movements with greater accuracy.
Why This Strategy Works
The IFVG concept is rooted in ICT principles, which emphasize liquidity dynamics, market inefficiencies, and institutional order flow. Traditional FVGs represent imbalances in price action caused by gaps between candles. When these gaps are invalidated, they become inversion zones that can act as magnets for price. These zones frequently serve as high-probability areas for price reversals or trend continuations.
This strategy works because it aligns with how institutional traders operate. Inversion gaps often mark areas of interest for "smart money," making them reliable indicators of potential market turning points. By focusing on these zones, traders can align their strategies with institutional behavior and improve their overall trading edge.
How the Indicator Works
This indicator simplifies the process of identifying and tracking IFVGs by automating their detection and visualization on the chart. It scans the chart in real-time to identify bullish and bearish FVGs that meet user-defined thresholds for inversion. Once identified, these gaps are dynamically displayed on the chart with distinct colors for bullish and bearish zones.
The indicator also tracks whether these gaps are mitigated or broken by price action. When an IFVG is broken, it extends the zone for a user-defined number of bars to visualize its potential role as a new support or resistance level. Additionally, alerts can be enabled to notify traders when new IFVGs form or when existing ones are broken, ensuring timely decision-making in fast-moving markets.
Key Features
Automatic Detection: The indicator automatically identifies bullish and bearish IFVGs based on user-defined thresholds.
Dynamic Visualization: It displays IFVGs directly on the chart with customizable colors for easy differentiation.
Real-Time Updates: The status of each IFVG is updated dynamically based on price action.
Zone Extensions: Broken IFVGs are extended to visualize their potential as support or resistance levels.
Alerts: Notifications can be set up to alert traders when key events occur, such as the formation or breaking of an IFVG.
These features make the tool highly efficient and reduce the need for manual analysis, allowing traders to focus on execution rather than tedious chart work.
Benefits of Using This Indicator
The IFVG indicator offers several advantages that make it an indispensable tool for ICT traders. By automating the detection of inversion gaps, it saves time and reduces errors in analysis. The clearly defined zones improve risk management by providing precise entry points, stop-loss levels, and profit targets based on market structure.
This tool is also highly versatile and adapts seamlessly across different timeframes. Whether you’re scalping lower timeframes or swing trading higher ones, it provides actionable insights tailored to your trading style. Furthermore, by aligning your strategy with institutional logic, you gain a significant edge in anticipating market movements.
Practical Applications
This indicator can be used across various trading styles:
Scalping: Identify quick reversal points on lower timeframes using real-time alerts.
Day Trading: Use inversion gaps as key levels for intraday support/resistance or trend continuation setups.
Swing Trading: Analyse higher timeframes to identify major inversion zones that could act as critical turning points in larger trends.
By integrating this tool into your trading routine, you can streamline your analysis process and focus on executing high-probability setups.
Conclusion
The Inversion Fair Value Gap (IFVG) indicator is more than just a technical analysis tool—it’s a strategic ally for traders looking to refine their edge in the markets. By automating the detection and tracking of inversion gaps based on ICT principles, it simplifies complex market analysis while maintaining accuracy and depth. Whether you’re new to ICT strategies or an experienced trader seeking greater precision, this indicator will elevate your trading game by aligning your approach with institutional behavior.
If you’re serious about improving your trading results while saving time and effort, this tool is an essential addition to your toolkit. It provides clarity in chaotic markets, enhances precision in trade execution, and ensures you never miss critical opportunities in your trading journey.
__________________________________________
Thanks for your support!
If you found this idea helpful or learned something new, drop a like 👍 and leave a comment, I’d love to hear your thoughts! 🚀
Make sure to follow me for more price action insights, free indicators, and trading strategies. Let’s grow and trade smarter together! 📈
Wave N + KDJ + Volumi + SMC + IchimokuWave N + KDJ + Volume + SMC + Ichimoku Indicator
Overview
This script is a multi-layered technical indicator designed to provide traders with enhanced market insights by combining five key methodologies:
• Wave N Pattern (Price Action)
• KDJ Oscillator (Momentum)
• Volume Filtering (Confirmation)
• Smart Money Concepts (Order Blocks) (Institutional Activity)
• Ichimoku Cloud (Trend and Support/Resistance)
By integrating these components, the indicator identifies high-probability trading signals, early warnings of trend shifts, and institutional price zones to improve decision-making in volatile markets.
⸻
How It Works
1️⃣ Wave N Pattern (Price Action Structure)
The Wave N pattern is a classic price action formation that helps spot potential trend reversals and continuations:
• A Bullish Wave N is detected when a higher low and a higher high structure appears.
• A Bearish Wave N is detected when a lower high and a lower low structure forms.
2️⃣ KDJ Oscillator (Momentum & Trend Strength)
The KDJ Indicator is a variation of the Stochastic Oscillator that adds a third line, J, to amplify sensitivity to trend movements.
• J > 50 indicates bullish momentum.
• J < 50 indicates bearish momentum.
• The script includes an early warning signal when J crosses 50, suggesting a possible trend shift.
3️⃣ Volume Filtering (Trade Confirmation)
To avoid false signals, the script integrates volume confirmation:
• A signal is valid only if the volume is above the 20-period EMA of volume.
• This ensures that trade signals are supported by strong market participation.
4️⃣ Smart Money Concepts (Order Blocks)
Order Blocks represent areas of institutional interest, where large traders accumulate or distribute positions.
• The script detects bullish order blocks (potential support) and bearish order blocks (potential resistance).
• These areas help identify optimal entry and exit points.
5️⃣ Ichimoku Cloud (Trend & Dynamic Support/Resistance)
The Ichimoku Cloud is used to confirm trend direction:
• Baseline (Kijun-sen) acts as a key trend filter.
• Senkou Span A & B form the cloud (Kumo), indicating dynamic support/resistance.
• Buy signals require price to be above the baseline, while sell signals require price to be below the baseline.
⸻
Trading Signals & Visual Elements
✅ BUY Signal (Green Arrow)
Occurs when:
• A Bullish Wave N forms
• J > 50 (Bullish KDJ Signal)
• Volume is above EMA threshold
• Price is above the Ichimoku Baseline
❌ SELL Signal (Red Arrow)
Occurs when:
• A Bearish Wave N forms
• J < 50 (Bearish KDJ Signal)
• Volume is above EMA threshold
• Price is below the Ichimoku Baseline
⚠️ Early Warning (Trend Shift Signal)
• An early warning appears when J crosses 50, indicating a possible upcoming trend shift.
• The line color changes based on the potential move:
• Green/Blue → Possible Uptrend
• Red/Orange → Possible Downtrend
⸻
Why This Indicator is Unique?
Unlike simple trend-following indicators, this script:
• Combines Price Action, Momentum, Volume, and Institutional Order Flow for a multi-dimensional approach.
• Filters out weak signals using volume confirmation and Ichimoku.
• Provides early warnings before major trend shifts.
• Visualizes Smart Money Order Blocks, giving traders an edge in spotting institutional zones.
⸻
Best Timeframes & Markets
📊 Recommended Timeframes:
• 1H & 1D (works best on medium/long-term trends)
💹 Markets:
• Crypto, Forex, and Stocks
This indicator is designed for traders who value confluence and strong confirmation in their strategies. Whether you are a trend trader, swing trader, or institutional flow analyst, this tool can help refine your decision-making process.
🚀 Optimize your trades with Wave N + KDJ + Volume + SMC + Ichimoku! 🚀
Machine Learning + IchimokuIchimoku Cloud + Machine Learning Levels is an advanced indicator that merges a classic trend tool with machine-learned supply & demand zones. Combining the two can help traders identify trends and key price zones with greater confidence when both signals align!
How it Works
The Ichimoku Cloud component identifies the trend direction and momentum at a glance – it shows support/resistance areas via its cloud (Kumo) and signals potential trend changes when the Tenkan-sen and Kijun-sen lines cross. Meanwhile, the Machine Learning module analyzes historical price data to project potential support and resistance levels (displayed as horizontal lines) that the algorithm deems significant. By combining these, the script offers a two-layer confirmation: Ichimoku outlines the broader trend and equilibrium, while the ML levels pinpoint specific price levels where the price may react. For example, if price is above the Ichimoku Cloud (uptrend) and also near an ML-predicted support, the confluence of these signals strengthens the case for a bounce.
How to Use
Apply the indicator to a chart like any other TradingView script. It works on multiple asset classes (see supported list below). Once added:
Ichimoku Lines
Tenkan-sen (Blue): Short-term average reflecting recent highs/lows.
Kijun-sen (Red): Medium-term baseline for support/resistance.
Senkou Span A (Green) & Senkou Span B (Orange) form the “Cloud” (Kumo). Price above the Cloud often signals a bullish environment; price below it can signal a bearish environment.
Chikou Span (Purple): Plots current closing price shifted back, helping gauge momentum vs. past price.
ML-Predicted Support/Resistance Lines (Green/Red Horizontal Lines)
Green Horizontal Lines – Potential support zones.
Red Horizontal Lines – Potential resistance zones.
These dynamically adjust based on the specific asset and are updated as new historical data becomes available.
Password (for Advanced Features)
In the indicator’s Settings, there is an input field labeled “Password.” The password corresponds to the ticker(s) listed below.
Stocks
TSLA, NVDA, AAPL, AMZN, PLTR, AMD, META, MSFT, MSTR, GOOG, GME, COIN, NFLX, BABA, UBER, HOOD, NKE
Cryptocurrencies
ETH, BTC, SOL, BNB, XRP, ADA, DOT, DOGE, LTC, JUP, LINK, INJ, FET, SAND, HBAR, TRX, SHIB, UNI
(If you attach the indicator to any unlisted ticker, you will only see the Ichimoku Cloud.)
Why It’s Unique
This script is a fresh take on market analysis – it’s original in fusing Ichimoku’s visual trend mapping with machine learning. The Ichimoku framework provides time-proven trend insight, and the ML levels add forward-looking context specific to each asset. By uniting them, the indicator aims to filter out false signals and highlight high-probability zones. No repainting occurs: Ichimoku values are based on closed data, and ML levels are computed from historical patterns (they do not retroactively change).
Ichimoku Cloud + Machine Learning Levels offers an informative blend of old and new analysis techniques. It clearly shows where price is relative to trend (via Ichimoku) and where it might react in the future (via ML levels). Use it to gain a richer view of the market’s behavior. I hope this indicator provides valuable insights for your trading decisions. Happy trading!
AdvancedLines (FiboBands) - PaSKaL
Overview :
AdvancedLines (FiboBands) - PaSKaL is an advanced technical analysis tool designed to automate the plotting of key Fibonacci retracement levels based on the highest high and lowest low over a customizable period. This indicator helps traders identify critical price zones such as support, resistance, and potential trend reversal or continuation points.
By using AdvancedLines (FiboBands) - PaSKaL , traders can easily spot key areas where the price is likely to reverse or consolidate, or where the trend may continue. It is particularly useful for trend-following, scalping, and range-trading strategies.
Key Features:
Automatic Fibonacci Level Calculation :
- The indicator automatically calculates and plots key Fibonacci levels (0.236, 0.382, 0.5, 0.618, and 0.764), which are crucial for identifying potential support and resistance levels in the market.
Adjustable Parameters :
- Bands Length: You can adjust the bands_length setting to change the number of bars used for calculating the highest high and lowest low. This gives flexibility for using the indicator on different timeframes and trading styles.
- Visibility: The Fibonacci levels, as well as the midline (0.5 Fibonacci level), can be shown or hidden based on your preference.
- Color Customization: You can change the color of each Fibonacci level and background fills to suit your chart preferences.
Fibonacci Levels
- The main Fibonacci levels plotted are:
- 0.236 – Minor support/resistance level
- 0.382 – Moderate retracement level
- 0.5 – Midpoint retracement, often used as a key level
- 0.618 – Golden ratio, considered one of the most important Fibonacci levels
- 0.764 – Strong reversal level, often indicating a continuation or change in trend
Background Fill
- The indicator allows you to fill the background between the Fibonacci levels and the bands with customizable colors. This makes it easier to visually highlight key zones on the chart.
How the Indicator Works:
AdvancedLines (FiboBands) - PaSKaL calculates the range (difference between the highest high and the lowest low) over a user-defined number of bars (e.g., 300). Fibonacci levels are derived from this range, helping traders identify potential price reversal points.
Mathematical Basis :
Fibonacci retracement levels are based on the Fibonacci sequence, where each number is the sum of the previous two (0, 1, 1, 2, 3, 5, 8, 13, etc.). The ratios derived from this sequence (such as 0.618 and 0.382) have been widely observed in nature, market cycles, and price movements. These ratios are used to forecast potential price retracements or continuation points after a major price move.
Fibonacci Levels Calculation :
Identify the Range: The highest high and the lowest low over the defined period are calculated.
Apply Fibonacci Ratios: Fibonacci ratios (0.236, 0.382, 0.5, 0.618, and 0.764) are applied to this range to calculate the corresponding price levels.
Plot the Levels: The indicator automatically plots these levels on your chart.
Customizing Fibonacci Levels & Colors:
The "AdvancedLines (FiboBands) - PaSKaL" indicator offers various customization options for Fibonacci levels, colors, and visibility:
Fibonacci Level Ratios:
- You can customize the Fibonacci level ratios through the following inputs:
- Fibo Level 1: 0.764
- Fibo Level 2: 0.618
- Fibo Level 3: 0.5
- Fibo Level 4: 0.382
- Fibo Level 5: 0.236
- These levels determine key areas where price may reverse or pause. You can adjust these ratios based on your trading preferences.
Fibonacci Level Colors:
- Each Fibonacci level can be assigned a different color to make it more distinguishable on your chart:
- Fibo Level 1 Color (default: Yellow)
- Fibo Level 2 Color (default: Orange)
- Fibo Level 3 Color (default: Green)
- Fibo Level 4 Color (default: Red)
- Fibo Level 5 Color (default: Blue)
- You can change these colors to fit your visual preferences or to align with your existing chart themes.
Visibility of Fibonacci Levels:
- You can choose whether to display each Fibonacci level using the following visibility inputs:
- Show Fibo Level 1 (0.764): Display or hide this level.
- Show Fibo Level 2 (0.618): Display or hide this level.
- Show Fibo Level 3 (0.5): Display or hide this level.
- Show Fibo Level 4 (0.382): Display or hide this level.
- Show Fibo Level 5 (0.236): Display or hide this level.
- This allows you to customize the indicator according to the specific Fibonacci levels that are most relevant to your trading strategy.
Background Fill Color
- The background between the Fibonacci levels and price bands can be filled with customizable colors:
- Fill Color for Upper Band & Fibo Level 1: This color will fill the area between the upper band and Fibonacci Level 1.
- Fill Color for Lower Band & Fibo Level 5: This color will fill the area between the lower band and Fibonacci Level 5.
- Adjusting these colors helps highlight critical zones where price may reverse or consolidate.
How to Use AdvancedLines (FiboBands) - PaSKaL in Trading :
Range Trading :
Range traders typically buy at support and sell at resistance. Fibonacci levels provide excellent support and resistance zones in a ranging market.
Example: If price reaches the 0.618 level in an uptrend, it may reverse, providing an opportunity to sell.
Conversely, if price drops to the 0.382 level, a bounce might occur, and traders can buy, anticipating the market will stay within the range.
Trend-following Trading :
For trend-following traders, Fibonacci levels act as potential entry points during a retracement. After a strong trend, price often retraces to one of the Fibonacci levels before continuing in the direction of the trend.
Example: In a bullish trend, when price retraces to the 0.382 level, it could be a signal to buy, as the price might resume its upward movement after the correction.
In a bearish trend, retracements to levels like 0.618 or 0.764 could provide optimal opportunities for shorting as the price resumes its downward movement.
Scalping :
Scalpers focus on short-term price movements. Fibonacci levels can help identify precise entry and exit points for quick trades.
Example: If price is fluctuating in a narrow range, a scalper can enter a buy trade at 0.236 and exit at the next Fibonacci level, such as 0.382 or 0.5, capturing small but consistent profits.
Stop-Loss and Take-Profit Levels :
Fibonacci levels can also help in setting stop-loss and take-profit levels.
Example: In a bullish trend, you can set a stop-loss just below the 0.236 level and a take-profit at 0.618.
In a bearish trend, set the stop-loss just above the 0.382 level and the take-profit at 0.764.
Identifying Reversals and Continuations :
Reversals: When price reaches a Fibonacci level and reverses direction, it may indicate the end of a price move.
Trend Continuation: If price bounces off a Fibonacci level and continues in the same direction, this may signal that the trend is still intact.
Conclusion :
AdvancedLines (FiboBands) - PaSKaL is an essential tool for any trader who uses Fibonacci retracements in their trading strategy. By automatically plotting key Fibonacci levels, this indicator helps traders quickly identify support and resistance zones, forecast potential reversals, and make more informed trading decisions.
For Trend-following Traders: Use Fibonacci levels to find optimal entry points after a price retracement.
For Range Traders: Identify key levels where price is likely to reverse or bounce within a range.
For Scalpers: Pinpoint small price movements and take advantage of quick profits by entering and exiting trades at precise Fibonacci levels.
By incorporating AdvancedLines (FiboBands) - PaSKaL into your trading setup, you will gain a deeper understanding of price action, improve your decision-making process, and enhance your overall trading performance.
Cumulative Price AverageThe Cumulative Price Average (CPA) indicator calculates and plots the overall average of candlestick prices, providing a smoothed representation of the market's long-term price trend. This is achieved by aggregating the averages of each candle (Open, High, Low, Close) and dynamically updating the overall average as new candles are added.
Key Features
Long-Term Price Perspective: Displays the cumulative average of all candles from the start of the chart.
Trend Visualization: Smooths out short-term price fluctuations to highlight the overall trend.
Dynamic Updates: The average adjusts with each new bar for real-time analysis.
Usage
Trend Analysis:
Identify long-term bullish or bearish trends by observing the slope of the CPA line.
Support/Resistance:
The CPA line can act as a dynamic support or resistance level for the price.
Price Comparison:
Compare the current price to the CPA to assess whether the market is overbought or oversold relative to its historical average.
This indicator is especially useful for traders seeking to incorporate a historical perspective into their analysis, providing insights into the broader market behavior beyond short-term volatility.
Comprehensive Trading Toolkit [BigBeluga]Trading Toolkit is a comprehensive indicator inspired by the trading strategies of the renowned crypto influencer Michaël van de Poppe . This tool combines RSI divergences, correction zones, and advanced support/resistance levels to provide traders with a robust framework for analyzing market movements.
🔵 Key Features:
RSI Divergences on Chart:
Automatically identifies and plots RSI divergences (bullish and bearish) directly on the main price chart.
Green lines indicate bullish divergences, suggesting potential upward reversals.
Red lines indicate bearish divergences, signaling possible downward movements.
Correction Boxes:
Traders typically define a correction as a drop in value of 10% or more. This drop can happen over a few hours or a few days. Also, it can last for less than 24 hours or many months.
This indicator visualizes corrections with blue shaded boxes, triggered by a percentage decline defined in the settings.
The boxes highlight sharp price drops, helping traders identify significant market movements quickly.
Advanced Support and Resistance Levels:
Dynamically detects key support and resistance levels based on price pivots.
When the price is above a level, it plots a green shaded area from the cross point, marking support.
When the price drops below a level, it plots a red shaded area, highlighting resistance.
Dashed lines indicate weaker levels, while solid lines represent stronger, more reliable levels.
🔵 Usage:
Identify Divergences: Use plotted RSI divergences to detect potential market reversals and align them with price action.
Analyze Correction Zones: Utilize correction boxes to evaluate significant price declines and find potential buying opportunities during these corrections.
Leverage Support and Resistance Levels: Confirm breakouts, reversals, or consolidation zones with the color-coded areas.
Enhance Risk Management: Combine divergences and correction zones to set informed stop-loss or take-profit levels.
Trading Toolkit empowers traders with actionable insights into market trends, corrections, and support/resistance dynamics, making it an invaluable tool for crypto and forex markets.
EMA/SMA + Multi-Timeframe Dashboard (Vertical)20/50 ema and 200 sma
The EMA SMA Trading Indicator combines the power of Exponential Moving Averages (EMA) and Simple Moving Averages (SMA) to help traders identify trends, reversals, and key entry/exit points.
Features:
Dual Moving Averages: Tracks both EMA and SMA to provide a balanced view of short-term and long-term market trends.
Customizable Periods: Allows users to set unique periods for EMA and SMA to suit their trading style and timeframe (e.g., day trading, swing trading, or investing).
Cross Alerts: Highlights EMA and SMA crossover points, which often indicate potential buy or sell signals.
Color-Coded Lines: Visual differentiation between EMA (dynamic and responsive) and SMA (smooth and lagging) for better readability.
Multi-Timeframe Compatibility: Suitable for scalping, intraday trading, and long-term analysis.
Usage:
Trend Confirmation: When the EMA is above the SMA, it signals a bullish trend; when it is below the SMA, it signals a bearish trend.
Crossover Strategy: Use crossovers as potential buy (EMA crosses above SMA) or sell (EMA crosses below SMA) signals.
Dynamic Support/Resistance: EMA can act as short-term support/resistance, while SMA represents long-term levels.
This indicator is perfect for traders who want to combine EMA's speed with SMA's stability for improved decision-making in volatile markets. Customizable alerts and visual cues make it user-friendly for beginners and experienced traders.
Make informed decisions and take your trading to the next level with the EMA SMA Trading Indicator!
Polygonal Pivot Bands [FXSMARTLAB]The Polygonal Pivot Bands highlights key price pivots, dynamic support and resistance levels, and recent price action on a trading chart. This indicator connects pivot highs and lows with a zigzag line, extends a real-time dashed line to the latest price point, and plots diagonal support/resistance levels that adapt to price movement. These elements together provide traders with a view of significant price zones and potential trend shifts.
Key Components of the Indicator
Pivots are calculated based on user-defined lengths, specifying how many bars on either side of a high or low are required to validate it as a pivot.
Adjustable left and right pivot lengths allow traders to control the sensitivity of pivot detection, with higher values resulting in fewer, more prominent pivots, and lower values increasing sensitivity to price changes.
Zigzag Line
The zigzag line connects consecutive pivot points, filtering out smaller fluctuations and emphasizing the broader direction of price movement.
Users can customize the line's color and thickness to match their preferences, helping them focus on larger trends and potential reversal points.
By linking pivot highs and lows, the zigzag pattern highlights the overall trend and potential points of reversal.
Real-Time Connector Line
A dashed line extends from the last confirmed pivot to the latest price point, providing a real-time, bar-by-bar update of the current price relative to the previous pivot.
This line does not project future price direction but maintains an up-to-date connection with the current price, showing the distance from the last pivot.
Its color and thickness are customizable for improved visibility on the chart.
Dynamic Support and Resistance Levels
The indicator plots dynamic support and resistanc e levels by connecting recent pivot highs and lows, resulting in lines that may appear diagonal rather than strictly horizontal.
These levels move in line with price action, adapting to the natural direction of trends, and offer visual cues where price may encounter support or resistance.
Colors and thickness of these lines can be set individually, allowing traders to adjust visibility according to their preferences.
Enabling these lines gives traders an ongoing reference for critical price boundaries that align more closely with the overall trend.
Heikin Line - TB365Heikin Line - An Enhanced Smoothed Heiken Ashi Overlay
Built on the foundation of TheBacktestGuy’s Smoothed Heiken Ashi indicator, Heikin Line takes trend analysis to the next level with versatile enhancements and adaptable settings.
This indicator offers selectable moving averages both before and after Heiken Ashi (HA) calculation, adding an additional layer of smoothness to traditional HA candles.
Key Features:
Trend Identification: Detects short and long-term trend directions with greater clarity.
Dynamic Support and Resistance: Not limited to a single line, Heikin Line creates a dynamic support/resistance zone, offering a visual “height” that adjusts with market shifts.
Trailing Stop: Effective as a trailing stop for enhanced risk management.
Trend Reversal Detection: Quickly identifies potential reversals when price crosses above or below the Heiken Ashi candle.
Improvements:
Trend Strength Visualization: Uses a cord-like appearance to reflect trend strength, making it easier to spot strong or weak trends.
Quick Reversal Detection: Enhanced responsiveness to detect rapid market reversals.
Easy Integration: Seamlessly combines with other indicators for a comprehensive trading setup.
With numerous moving average options, Heikin Line is adjustable to suit various market conditions and trading styles. Additionally, it leverages my TAExt library, so you can use it within your own strategies for added versatility.
Ultra Key LevelsThe "Ultra Key Levels" indicator is a powerful tool designed for traders who seek to identify critical price levels in the market. This Pine Script™ indicator is optimized to plot significant pivot highs and lows directly on your chart, providing a clear visual representation of potential support and resistance zones.
Pivot Detection: Automatically identifies and marks pivot highs and lows using customizable parameters. Traders can fine-tune the length of the pivots, allowing for precise detection of significant price points.
Dynamic Boxes: The indicator draws dynamic boxes around each identified pivot high and low, highlighting key levels. These boxes are adjusted based on the Average True Range (ATR), ensuring they reflect the current market volatility.
Pivot Highs/Lows: Control the appearance and behavior of pivot points with options to adjust source data, length, transparency, and the maximum number of pivots displayed on the chart.
ATR Multiplier: Set the ATR multiplier to determine the size of the boxes around pivot points, helping you assess the strength of each level.
Debug Mode: Activate debug mode to visualize pivot points and fine-tune your settings for optimal performance.
Scalability: Supports up to 500 boxes, making it suitable for both short-term and long-term traders who need to track multiple levels across different timeframes.
The "Ultra Key Levels" indicator is ideal for traders who rely on technical analysis to make informed decisions. By automatically identifying and highlighting key price levels, this tool helps you anticipate potential market movements and optimize your trading strategy.
VWAP, MFI, RSI with S/R StrategyBest for 0dte/intraday trading on AMEX:SPY with 1 minute chart
Strategy Concept
This strategy aims to identify potential reversal points in a price trend by combining momentum indicators (RSI and MFI), volume-weighted price (VWAP), and recent price action trends. It looks for conditions where the price is poised to change direction, either bouncing off a support level in a potential uptrend or falling from a resistance level in a potential downtrend.
By incorporating both price level analysis (support/resistance) and momentum indicators, the strategy seeks to increase the likelihood of identifying significant trend reversals, taking into consideration both recent price movements and the current price's position relative to historical highs and lows.
VWAP (Volume-Weighted Average Price)
VWAP acts as a benchmark to determine the general market trend. It's an average price weighted by volume.
A price above VWAP is often considered bullish, and a price below VWAP is seen as bearish.
MFI (Money Flow Index) and RSI (Relative Strength Index) Parameters
MFI is a volume-weighted RSI, used to identify overbought (above 70) or oversold (below 30) conditions.
RSI is a momentum indicator that measures the magnitude of recent price changes to identify overbought or oversold conditions, similar to MFI.
The script uses standard overbought (70) and oversold (30) thresholds for both MFI and RSI.
Trend Check Function
The function trendCheck analyzes the past pastBars candles to count how many were bullish (closing price higher than the opening price) and bearish.
This function is used to assess the recent trend direction.
Support and Resistance Detection
The script calculates the highest high (highestHigh) and lowest low (lowestLow) over the last lookbackSR (50) periods to identify potential support and resistance levels.
isNearSupport and isNearResistance are conditions to check if the current price is within 0.08% of these identified levels, indicating proximity to support or resistance.
Buy and Sell Logic
Buy Signal:
The RSI crosses over the oversold threshold (30).
The MFI is also below its oversold level (30).
The current price is above the VWAP.
The recent trend (past 20 bars) has been predominantly bearish.
The price is near the identified support level.
Sell Signal:
The RSI crosses under the overbought threshold (70).
The MFI is above its overbought level (70).
The current price is below the VWAP.
The recent trend has been predominantly bullish.
The price is near the identified resistance level.
Optimal Length BackTester [YinYangAlgorithms]This Indicator allows for a ‘Optimal Length’ to be inputted within the Settings as a Source. Unlike most Indicators and/or Strategies that rely on either Static Lengths or Internal calculations for the length, this Indicator relies on the Length being derived from an external Indicator in the form of a Source Input.
This may not sound like much, but this application may allows limitless implementations of such an idea. By allowing the input of a Length within a Source Setting you may have an ‘Optimal Length’ that adjusts automatically without the need for manual intervention. This may allow for Traditional and Non-Traditional Indicators and/or Strategies to allow modifications within their settings as well to accommodate the idea of this ‘Optimal Length’ model to create an Indicator and/or Strategy that adjusts its length based on the top performing Length within the current Market Conditions.
This specific Indicator aims to allow backtesting with an ‘Optimal Length’ inputted as a ‘Source’ within the Settings.
This ‘Optimal Length’ may be used to display and potentially optimize multiple different Traditional Indicators within this BackTester. The following Traditional Indicators are included and available to be backtested with an ‘Optimal Length’ inputted as a Source in the Settings:
Moving Average; expressed as either a: Simple Moving Average, Exponential Moving Average or Volume Weighted Moving Average
Bollinger Bands; expressed based on the Moving Average Type
Donchian Channels; expressed based on the Moving Average Type
Envelopes; expressed based on the Moving Average Type
Envelopes Adjusted; expressed based on the Moving Average Type
All of these Traditional Indicators likewise may be displayed with multiple ‘Optimal Lengths’. They have the ability for multiple different ‘Optimal Lengths’ to be inputted and displayed, such as:
Fast Optimal Length
Slow Optimal Length
Neutral Optimal Length
By allowing for the input of multiple different ‘Optimal Lengths’ we may express the ‘Optimal Movement’ of such an expressed Indicator based on different Time Frames and potentially also movement based on Fast, Slow and Neutral (Inclusive) Lengths.
This in general is a simple Indicator that simply allows for the input of multiple different varieties of ‘Optimal Lengths’ to be displayed in different ways using Tradition Indicators. However, the idea and model of accepting a Length as a Source is unique and may be adopted in many different forms and endless ideas.
Tutorial:
You may add an ‘Optimal Length’ within the Settings as a ‘Source’ as followed in the example above. This Indicator allows for the input of a:
Neutral ‘Optimal Length’
Fast ‘Optimal Length’
Slow ‘Optimal Length’
It is important to account for all three as they generally encompass different min/max length values and therefore result in varying ‘Optimal Length’s’.
For instance, say you’re calculating the ‘Optimal Length’ and you use:
Min: 1
Max: 400
This would therefore be scanning for 400 (inclusive) lengths.
As a general way of calculating you may assume the following for which lengths are being used within an ‘Optimal Length’ calculation:
Fast: 1 - 199
Slow: 200 - 400
Neutral: 1 - 400
This allows for the calculation of a Fast and Slow length within the predetermined lengths allotted. However, it likewise allows for a Neutral length which is inclusive to all lengths alloted and may be deemed the ‘Most Accurate’ for these reasons. However, just because the Neutral is inclusive to all lengths, doesn’t mean the Fast and Slow lengths are irrelevant. The Fast and Slow length inputs may be useful for seeing how specifically zoned lengths may fair, and likewise when they cross over and/or under the Neutral ‘Optimal Length’.
This Indicator features the ability to display multiple different types of Traditional Indicators within the ‘Display Type’.
We will go over all of the different ‘Display Types’ with examples on how using a Fast, Slow and Neutral length would impact it:
Simple Moving Average:
In this example above have the Fast, Slow and Neutral Optimal Length formatted as a Slow Moving Average. The first example is on the 15 minute Time Frame and the second is on the 1 Day Time Frame, demonstrating how the length changes based on the Time Frame and the effects it may have.
Here we can see that by inputting ‘Optimal Lengths’ as a Simple Moving Average we may see moving averages that change over time with their ‘Optimal Lengths’. These lengths may help identify Support and/or Resistance locations. By using an 'Optimal Length' rather than a static length, we may create a Moving Average which may be more accurate as it attempts to be adaptive to current Market Conditions.
Bollinger Bands:
Bollinger Bands are a way to see a Simple Moving Average (SMA) that then uses Standard Deviation to identify how much deviation has occurred. This Deviation is then Added and Subtracted from the SMA to create the Bollinger Bands which help Identify possible movement zones that are ‘within range’. This may mean that the price may face Support / Resistance when it reaches the Outer / Inner bounds of the Bollinger Bands. Likewise, it may mean the Price is ‘Overbought’ when outside and above or ‘Underbought’ when outside and below the Bollinger Bands.
By applying All 3 different types of Optimal Lengths towards a Traditional Bollinger Band calculation we may hope to see different ranges of Bollinger Bands and how different lookback lengths may imply possible movement ranges on both a Short Term, Long Term and Neutral perspective. By seeing these possible ranges you may have the ability to identify more levels of Support and Resistance over different lengths and Trading Styles.
Donchian Channels:
Above you’ll see two examples of Machine Learning: Optimal Length applied to Donchian Channels. These are displayed with both the 15 Minute Time Frame and the 1 Day Time Frame.
Donchian Channels are a way of seeing potential Support and Resistance within a given lookback length. They are a way of withholding the High’s and Low’s of a specific lookback length and looking for deviation within this length. By applying a Fast, Slow and Neutral Machine Learning: Optimal Length to these Donchian Channels way may hope to achieve a viable range of High’s and Low’s that one may use to Identify Support and Resistance locations for different ranges of Optimal Lengths and likewise potentially different Trading Strategies.
Envelopes / Envelopes Adjusted:
Envelopes are an interesting one in the sense that they both may be perceived as useful; however we deem that with the use of an ‘Optimal Length’ that the ‘Envelopes Adjusted’ may work best. We will start with examples of the Traditional Envelope then showcase the Adjusted version.
Envelopes:
As you may see, a Traditional form of Envelopes even produced with a Machine Learning: Optimal Length may not produce optimal results. Unfortunately this may occur with some Traditional Indicators and they may need some adjustments as you’ll notice with the ‘Envelopes Adjusted’ version. However, even without the adjustments, these Envelopes may be useful for seeing ‘Overbought’ and ‘Oversold’ locations within a Machine Learning: Optimal Length standpoint.
Envelopes Adjusted:
By adding an adjustment to these Envelopes, we may hope to better reflect our Optimal Length within it. This is caused by adding a ratio reflection towards the current length of the Optimal Length and the max Length used. This allows for the Fast and Neutral (and potentially Slow if Neutral is greater) to achieve a potentially more accurate result.
Envelopes, much like Bollinger Bands are a way of seeing potential movement zones along with potential Support and Resistance. However, unlike Bollinger Bands which are based on Standard Deviation, Envelopes are based on percentages +/- from the Simple Moving Average.
We will conclude our Tutorial here. Hopefully this has given you some insight into how useful adding a ‘Optimal Length’ within an external (secondary) Indicator as a Source within the Settings may be. Likewise, how useful it may be for automation sake in the sense that when the ‘Optimal Length’ changes, it doesn’t rely on an alert where you need to manually update it yourself; instead it will update Automatically and you may reap the benefits of such with little manual input needed (aside from the initial setup).
If you have any questions, comments, ideas or concerns please don't hesitate to contact us.
HAPPY TRADING!
Intersection Value FunctionsWinning entry for the first Pinefest contest. The challenge required providing three functions returning the intersection value between two series source1 and source2 in the event of a cross, crossunder, and crossover.
Feel free to use the code however you like.
🔶 CHALLENGE FUNCTIONS
🔹 crossValue()
//@function Finds intersection value of 2 lines/values if any cross occurs - First function of challenge -> crossValue(source1, source2)
//@param source1 (float) source value 1
//@param source2 (float) source value 2
//@returns Intersection value
example:
value = crossValue(close, close )
🔹 crossoverValue()
//@function Finds intersection value of 2 lines/values if crossover occurs - Second function of challenge -> crossoverValue(source1, source2)
//@param source1 (float) source value 1
//@param source2 (float) source value 2
//@returns Intersection value
example:
value = crossoverValue(close, close )
🔹 crossunderValue()
//@function Finds intersect of 2 lines/values if crossunder occurs - Third function of challenge -> crossunderValue(source1, source2)
//@param source1 (float) source value 1
//@param source2 (float) source value 2
//@returns Intersection value
example:
value = crossunderValue(close, close )
🔶 DETAILS
A series of values can be displayed as a series of points, where the point location highlights its value, however, it is more common to connect each point with a line to have a continuous aspect.
A line is a geometrical object connecting two points, each having y and x coordinates. A line has a slope controlling its steepness and an intercept indicating where the line crosses an axis. With these elements, we can describe a line as follows:
slope × x + intercept
A cross between two series of values occurs when one series is greater or lower than the other while its previous value isn't.
We are interested in finding the "intersection value", that is the value where two crossing lines are equal. This problem can be approached via linear interpolation.
A simple and direct approach to finding our intersection value is to find the common scaling factor of the slopes of the lines, that is the multiplicative factor that multiplies both lines slopes such that the resulting points are equal.
Given:
A = Point A1 + m1 × scaling_factor
B = Point B1 + m2 × scaling_factor
where scaling_factor is the common scaling factor, and m1 and m2 the slopes:
m1 = Point A2 - Point A1
m2 = Point B2 - Point B1
In our cases, since the horizontal distance between two points is simply 1, our lines slopes are equal to their vertical distance (rise).
Under the event of a cross, there exists a scaling_factor satisfying A = B , which allows us to directly compute our intersection value. The solution is given by:
scaling_factor = (B1 - A1)/(m1 - m2)
As such our intersection value can be given by the following equivalent calculations:
(1) A1 + m1 × (B1 - A1)/(m1 - m2)
(2) B1 + m2 × (B1 - A1)/(m1 - m2)
(3) A2 - m2 × (A2 - B2)/(m1 - m2)
(4) B2 - m2 × (A2 - B2)/(m1 - m2)
The proposed functions use the third calculation.
This approach is equivalent to expressions using the classical line equation, with:
slope1 × x + intercept1 = slope2 × x + intercept2
By solving for x , the intersection point is obtained by evaluating any of the line equations for the obtained x solution.
🔶 APPLICATIONS
The intersection point of two crossing lines might lead to interesting applications and creations, in this section various information/tools derived from the proposed calculations are presented.
This supplementary material is available within the script.
🔹 Intersections As Support/Resistances
The script allows extending the lines of the intersection value when a cross is detected, these extended lines could have applications as support/resistance lines.
🔹 Using The Scaling Factor
The core of the proposed calculation method is the common scaling factor, which can be used to return useful information, such as the position of the cross relative to the x coordinates of a line.
The above image highlights two moving averages (in green and red), the cross-interval areas are highlighted in blue, and the intersection point is highlighted as a blue line.
The pane below shows a bar plot displaying:
1 - scaling factor = 1 -
Values closer to 1 indicate that the cross location is closer to x2 (the right coordinate of the lines), while values closer to 0 indicate that the cross location is closer to x1 .
🔹 Intersection Matrix
The main proposed functions of this challenge focus on the crossings between two series of values, however, we might be interested in applying this over a collection of series.
We can see in the image above how the lines connecting two points intersect with each other, we can construct a matrix populated with the intersection value of two corresponding lines. If (X, Y) represents the intersection value between lines X and Y we have the following matrix:
| Line A | Line B | Line C | Line D |
-------|--------|--------|--------|--------|
Line A | | (A, B) | (A, C) | (A, D) |
Line B | (B, A) | | (B, C) | (B, D) |
Line C | (C, A) | (C, B) | | (C, D) |
Line D | (D, A) | (D, B) | (D, C) | |
We can see that the upper triangular part of this matrix is redundant, which is why the script does not compute it. This function is provided in the script as intersectionMatrix :
//@function Return the N * N intersection matrix from an array of values
//@param array_series (array) array of values, requires an array supporting historical referencing
//@returns (matrix) Intersection matrix showing intersection values between all array entries
In the script, we create an intersection matrix from an array containing the outputs of simple moving averages with a period in a specific user set range and can highlight if a simple moving average of a certain period crosses with another moving average with a different period, as well as the intersection value.
🔹 Magnification Glass
Crosses on a chart can be quite small and might require zooming in significantly to see a detailed picture of them. Using the obtained scaling factor allows reconstructing crossing events with an higher resolution.
A simple supplementary zoomIn function is provided to this effect:
//@function Display an higher resolution representation of intersecting lines
//@param source1 (float) source value 1
//@param source2 (float) source value 2
//@param css1 (color) color of source 1 line
//@param css2 (color) color of source 2 line
//@param intersec_css (color) color of intersection line
//@param area_css (color) color of box area
Users can obtain a higher resolution by modifying the provided "Resolution" setting.
The function returns a higher resolution representation of the most recent crosses between two input series, the intersection value is also provided.
MA Sabres [LuxAlgo]The "MA Sabres" indicator highlights potential trend reversals based on a moving average direction. Detected reversals are accompanied by an extrapolated "Sabre" looking shape that can be used as support/resistance and as a source of breakouts.
🔶 USAGE
If a selected moving average (MA) continues in the same direction for a certain time, a change in that direction could signify a potential reversal.
In this publication, when a trend change occurs, a sabre-shaped figure is drawn which can be used as support/resistance:
A sabre can be indicative of a direction, however, it can also act as a stop-loss when the price should go in the opposite direction:
Or show potential areas of interest:
🔶 DETAILS
This publication will look for a change in direction after the MA went in the same direction during x consecutive bars (settings: " Reversal after x bars in the same direction ").
Then a circle-shaped drawing will be drawn 1 bar back, at the previous high/low, dependable of the previous direction.
From there originates a sabre-shaped figure where the tip lies as far as the user-set MA length.
The angle of the "sabre" relies on the ATR of the previous 14 bars.
Less volatility will create a flatter sabre while the opposite is true when there is more volatility in the previous 14 bars.
The sabre is created by the latest feature, polylines , which enables us to connect several 'points', resulting in a polyline.new() object.
Do note that sabres are offset by one bar to the past to align their locations.
🔶 SETTINGS
MA Type: SMA, EMA, SMMA (RMA), HullMA, WMA, VWMA, DEMA, TEMA, NONE (off)
Length: this sets the length of MA, and the length of the sabre shape
Previous Trend Duration: After the MA direction is the same for x consecutive bars, the first time the direction changes, a sabre is drawn
Predictive Channels [LuxAlgo]The Predictive Channels indicator is a real-time estimate of a trend channel. The indicator returns 2 resistances, 2 supports, and an average line.
🔶 USAGE
The Predictive Channels attempt to find a real-time estimate of an underlying linear trend in the price, the returned supports/resistances are constructed from this estimate.
The area between the price and the estimated trend is also highlighted, with a green color when the price is above the estimated trend, indicating a bullish variation relative to the trend, and a red color indicating a bearish variation.
Price deviating significantly from an estimated trend will return new channels. The Factor setting controls the allowed distance between the price and the trend estimate, with higher values allowing for greater distances and less frequent channels.
The Slope setting will affect the steepness of the channels, with lower values returning steeper channels, this can cause the price to more quickly deviate from the estimated trend, increasing the frequency at which new channels are created.
🔶 SETTINGS
Factor: Multiplicative factor, determines the allowed distance between the price and an estimated trend before a new channel is constructed.
Slope: Controls the line steepness of the channels, with lower values returning steeper lines.
Liquidity Zones[Angel Algo]OVERVIEW
The "Liquidity Zones" indicator is a tool for traders to identify high and low liquidity areas on a chart. The indicator plots the highest and lowest volume levels within a rolling window of a specified period and calculates the corresponding price levels and zones at which those volumes occurred. The calculated areas represent key support and resistance levels in the market.
HOW TO USE
Once added, the indicator will plot the high and low liquidity zones on the chart based on the settings. Users can then adjust the indicator inputs to customize its behavior and appearance. Additionally, users can set up trading alerts based on the indicator's signals by clicking the "Create Alert" button in the alert section of the indicator's settings.
The bar coloring feature helps users identify trends and sideways market conditions. When this feature is enabled, the bars on the chart are colored based on their position relative to the highest volume levels calculated by the indicator. If a bar's closing price is above the zone, the bar is colored green. If the closing price is below the zone, the bar is colored red. If the closing price is between these two levels, the bar is colored blue.
This color-coding makes it easy to quickly identify periods of bullish or bearish momentum in the market. When the bars are mostly green, it suggests that buyers are in control and the market is in an uptrend. Conversely, when the bars are mostly red, it suggests that sellers are in control and the market is in a downtrend. The blue bars, on the other hand, indicate a sideways or consolidating market, where neither buyers nor sellers are clearly in control. These periods can be difficult to trade, as there is often a lack of clear direction in price movements.
When the Support/Resistance coloring feature is enabled, the indicator colors the high liquidity zones based on whether the opening and closing prices of the latest candle are above or below the zone. If the opening and closing prices are both above the high liquidity zone, the zone is colored green, indicating potential support. Conversely, if the opening and closing prices are both below the high liquidity zone, the zone is colored red, indicating potential resistance. If the opening and closing prices are inside the high liquidity zone, the zone is colored blue, indicating a neutral zone where price may continue to oscillate. This feature can help traders identify potential areas of support and resistance, and provide insights into market sentiment.
The indicator also includes trading alerts based on the position of the price relative to the highest volume zones. If the price goes above the zone, the indicator will trigger a bullish signal. If the price goes below the level, the indicator will trigger a bearish signal.
SETTINGS
The indicator has several customizable inputs that allow users to tailor its behavior to their preferences. These inputs include:
Period: The number of bars over which to calculate the highest and lowest volumes. The default value is 20. Recommended value range 10-500.
Bar coloring: Whether to color the bars based on their position relative to the high liquidity zones. The default value is false.
Support/Resistance coloring: Whether the high liquidity zone should be colorized depending on whether the price is above or below it. The default value is false.
Display high liquidity zones: Whether to display the high liquidity zones on the chart. The default value is true.
Display low liquidity levels: Whether to display the low liquidity levels on the chart. The default value is false.